package com.suxii.pojo;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;


public abstract class Msg implements Serializable {
    /*
    实现Serializable接口，实现序列化操作
    声明消息实体抽象类
    定义可选消息类型
    设置抽象方法，确定子类消息类型
     */

    public static final int CHAT_MSG=0;
    public static final int LOGIN_MSG=1;
    public static final int PING_MSG=2;
    public static final int FRIEND_MSG=3;

    private static final Map<Integer,Class<?>> msgClass=new HashMap<>();

    //根据类型返回类
    public static Class<?> getMsgClass(int msgType){
        return msgClass.get(msgType);
    }
    //获取子类类型
    public abstract int getType();

    //后续可扩展
    static {
        msgClass.put(CHAT_MSG,ChatMsg.class);
        msgClass.put(LOGIN_MSG,LoginMsg.class);
        msgClass.put(PING_MSG,PingMsg.class);
        msgClass.put(FRIEND_MSG,FriendMsg.class);
    }

    // 获取当前用户uid
    public int getUid(){
        return 0;
    }
}
